{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Random Forests Classification Part 2"
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import pandas as pd\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# fix_yahoo_finance is used to fetch data \n",
        "import fix_yahoo_finance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2014-01-01'\n",
        "end = '2018-08-27'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 downloaded\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2014-01-02</th>\n",
              "      <td>3.85</td>\n",
              "      <td>3.98</td>\n",
              "      <td>3.84</td>\n",
              "      <td>3.95</td>\n",
              "      <td>3.95</td>\n",
              "      <td>20548400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-03</th>\n",
              "      <td>3.98</td>\n",
              "      <td>4.00</td>\n",
              "      <td>3.88</td>\n",
              "      <td>4.00</td>\n",
              "      <td>4.00</td>\n",
              "      <td>22887200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-06</th>\n",
              "      <td>4.01</td>\n",
              "      <td>4.18</td>\n",
              "      <td>3.99</td>\n",
              "      <td>4.13</td>\n",
              "      <td>4.13</td>\n",
              "      <td>42398300</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-07</th>\n",
              "      <td>4.19</td>\n",
              "      <td>4.25</td>\n",
              "      <td>4.11</td>\n",
              "      <td>4.18</td>\n",
              "      <td>4.18</td>\n",
              "      <td>42932100</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-08</th>\n",
              "      <td>4.23</td>\n",
              "      <td>4.26</td>\n",
              "      <td>4.14</td>\n",
              "      <td>4.18</td>\n",
              "      <td>4.18</td>\n",
              "      <td>30678700</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "            Open  High   Low  Close  Adj Close    Volume\n",
              "Date                                                    \n",
              "2014-01-02  3.85  3.98  3.84   3.95       3.95  20548400\n",
              "2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200\n",
              "2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300\n",
              "2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100\n",
              "2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Create more data\n",
        "dataset['Increase/Decrease'] = np.where(dataset['Volume'].shift(-1) > dataset['Volume'],1,0)\n",
        "dataset['Buy_Sell_on_Open'] = np.where(dataset['Open'].shift(-1) > dataset['Open'],1,-1)\n",
        "dataset['Buy_Sell'] = np.where(dataset['Adj Close'].shift(-1) > dataset['Adj Close'],1,-1)\n",
        "dataset['Return'] = dataset['Adj Close'].pct_change()\n",
        "dataset = dataset.dropna()\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 3,
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "      <th>Increase/Decrease</th>\n",
              "      <th>Buy_Sell_on_Open</th>\n",
              "      <th>Buy_Sell</th>\n",
              "      <th>Return</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2014-01-03</th>\n",
              "      <td>3.98</td>\n",
              "      <td>4.00</td>\n",
              "      <td>3.88</td>\n",
              "      <td>4.00</td>\n",
              "      <td>4.00</td>\n",
              "      <td>22887200</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.012658</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-06</th>\n",
              "      <td>4.01</td>\n",
              "      <td>4.18</td>\n",
              "      <td>3.99</td>\n",
              "      <td>4.13</td>\n",
              "      <td>4.13</td>\n",
              "      <td>42398300</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.032500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-07</th>\n",
              "      <td>4.19</td>\n",
              "      <td>4.25</td>\n",
              "      <td>4.11</td>\n",
              "      <td>4.18</td>\n",
              "      <td>4.18</td>\n",
              "      <td>42932100</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0.012107</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-08</th>\n",
              "      <td>4.23</td>\n",
              "      <td>4.26</td>\n",
              "      <td>4.14</td>\n",
              "      <td>4.18</td>\n",
              "      <td>4.18</td>\n",
              "      <td>30678700</td>\n",
              "      <td>0</td>\n",
              "      <td>-1</td>\n",
              "      <td>-1</td>\n",
              "      <td>0.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2014-01-09</th>\n",
              "      <td>4.20</td>\n",
              "      <td>4.23</td>\n",
              "      <td>4.05</td>\n",
              "      <td>4.09</td>\n",
              "      <td>4.09</td>\n",
              "      <td>30667600</td>\n",
              "      <td>0</td>\n",
              "      <td>-1</td>\n",
              "      <td>1</td>\n",
              "      <td>-0.021531</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "            Open  High   Low  Close  Adj Close    Volume  Increase/Decrease  \\\n",
              "Date                                                                          \n",
              "2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200                  1   \n",
              "2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300                  1   \n",
              "2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100                  0   \n",
              "2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700                  0   \n",
              "2014-01-09  4.20  4.23  4.05   4.09       4.09  30667600                  0   \n",
              "\n",
              "            Buy_Sell_on_Open  Buy_Sell    Return  \n",
              "Date                                              \n",
              "2014-01-03                 1         1  0.012658  \n",
              "2014-01-06                 1         1  0.032500  \n",
              "2014-01-07                 1        -1  0.012107  \n",
              "2014-01-08                -1        -1  0.000000  \n",
              "2014-01-09                -1         1 -0.021531  "
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 3,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset.shape"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 4,
          "data": {
            "text/plain": [
              "(1171, 10)"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 4,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = dataset.drop(['Close', 'Buy_Sell'], axis=1)  \n",
        "y = dataset['Buy_Sell'] "
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Import train_test_split function\n",
        "from sklearn.model_selection import train_test_split\n",
        "# Split dataset into training set and test set\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 70% training and 30% test"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "#Import Random Forest Model\n",
        "from sklearn.ensemble import RandomForestClassifier\n",
        "\n",
        "#Create a Gaussian Classifier\n",
        "clf = RandomForestClassifier(n_estimators=100)\n",
        "\n",
        "#Train the model using the training sets y_pred=clf.predict(X_test)\n",
        "clf.fit(X_train,y_train)\n",
        "\n",
        "y_pred = clf.predict(X_test)"
      ],
      "outputs": [],
      "execution_count": 7,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn import metrics\n",
        "\n",
        "# Model Accuracy\n",
        "print(\"Accuracy:\",metrics.accuracy_score(y_test, y_pred))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy: 0.5142045454545454\n"
          ]
        }
      ],
      "execution_count": 8,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.ensemble import RandomForestClassifier\n",
        "\n",
        "#Create a Gaussian Classifier\n",
        "clf=RandomForestClassifier(n_estimators=100)\n",
        "\n",
        "#Train the model using the training sets y_pred=clf.predict(X_test)\n",
        "clf.fit(X_train,y_train)"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 9,
          "data": {
            "text/plain": [
              "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
              "            max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
              "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
              "            min_samples_leaf=1, min_samples_split=2,\n",
              "            min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=None,\n",
              "            oob_score=False, random_state=None, verbose=0,\n",
              "            warm_start=False)"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 9,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "feature_imp = pd.Series(clf.feature_importances_,index=X.columns).sort_values(ascending=False)\n",
        "feature_imp"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 10,
          "data": {
            "text/plain": [
              "Volume               0.182743\n",
              "Return               0.175532\n",
              "High                 0.151965\n",
              "Open                 0.150224\n",
              "Low                  0.143563\n",
              "Adj Close            0.139090\n",
              "Increase/Decrease    0.030820\n",
              "Buy_Sell_on_Open     0.026064\n",
              "dtype: float64"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 10,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "%matplotlib inline\n",
        "\n",
        "# Creating a bar plot\n",
        "fig, ax = plt.subplots(figsize=(12,8))\n",
        "sns.barplot(x=feature_imp, y=feature_imp.index)\n",
        "# Add labels to your graph\n",
        "plt.xlabel('Feature Importance Score')\n",
        "plt.ylabel('Features')\n",
        "plt.legend(X)\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 864x576 with 1 Axes>"
            ],
            "image/png": [
              "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DGHJkiUVPm6DBg0YNmxYme+dffbZXHvttaxdu5YaNWowf/58Fi1aRKdOnfjRj37E008/TURw7bXX0qdPny8cO3LkSKZOncqtt94KwKmnnsrgwYPp2rUrdevW5dJLL+XZZ59lr7324pe//CVDhgzhgw8+4Oabb+b000+nqKiIq666iokTJ7J27VouvfRSvvvd71b49VdlhhBJkiRtlyVLlrBw4cJMz7nPPvvQoUMHnnnmGc444wwefPBB+vTpw6OPPsrMmTOZNWsWH3/8Me3bt6dLly7lHnflypV07dqVX//61/Tq1Ytrr72WcePG8eabb3LRRRdx+umn84c//IH69eszZcoU1q5dS8eOHenRo4dfgrgNDCG7gJoH1qPZNSfluwxJklRFNWjQIC/jblyStTGEjBgxgj/96U+cd955FBQUcMABB3DiiScyZcoUWrVqVa5z7r777vTs2ROAli1bUqNGDapXr07Lli2ZP38+AGPHjuW1115j1KhRACxbtow5c+YYQraBIUSSJEnbZXNLpirbmWeeyZVXXsn06dNZvXo1bdq04d57793qcdWqVWPDhg0l+2vWrCnZrl69OhEBwG677UaNGjVKttevXw9ASolbbrmFU045pSIvZ5fijemSJEnaKdWtW5euXbvSv3//khvSu3TpwkMPPURRURFLly5l0qRJdOjQ4QvHNWrUiJkzZ7JhwwY+/PBDXn311W067ymnnMIdd9zBunXrAHj33XdZuXJlxVzULsKZEEmSJO20zjvvPHr37l3ypKxevXoxefJkjj76aCKCYcOG0aBBg5KlVAAdO3aksLCQli1b0qJFC9q0abNN5/z2t7/N/PnzadOmDSkl9ttvP0aPHl2Rl1XlRUop3zWokrVr1y5NnTo132VIkqQq5K233qJZs2b5LkN5VNbvQERMSym129qxLseSJEmSlClDiCRJkqRMGUIkSZIkZcoQIkmSJClThhBJkiRJmTKESJIkScqU3xOyC1i0aBFDhw7Ndxm7BD9nSZKyU7duXVasWJHvMspl8eLFXHTRRdx11100a9aMI488kjVr1lCvXj0uvfRSLrroonyXmClDiCRJknZZ69evp1q1yv+T+JlnnuGUU04B4IgjjmDGjBkAvPfee/Tu3ZsNGzbQr1+/7TpHUVERBQUF211rFgwhkiRJ2i5DhgxhyZIlFT5ugwYN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\n"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 11,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Improve Model"
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "# Split dataset into features and labels\n",
        "X = X[['Volume', 'Return','Open']]\n",
        "# y is the same target\n",
        "\n",
        "# Split dataset into training set and test set\n",
        "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.70, random_state=5) # 70% training and 30% test"
      ],
      "outputs": [],
      "execution_count": 12,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.ensemble import RandomForestClassifier\n",
        "\n",
        "#Create a Gaussian Classifier\n",
        "clf=RandomForestClassifier(n_estimators=100)\n",
        "\n",
        "#Train the model using the training sets y_pred=clf.predict(X_test)\n",
        "clf.fit(X_train,y_train)\n",
        "\n",
        "# prediction on test set\n",
        "y_pred=clf.predict(X_test)\n",
        "\n",
        "#Import scikit-learn metrics module for accuracy calculation\n",
        "from sklearn import metrics\n",
        "# Model Accuracy, how often is the classifier correct?\n",
        "print(\"Accuracy:\",metrics.accuracy_score(y_test, y_pred))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy: 0.4634146341463415\n"
          ]
        }
      ],
      "execution_count": 13,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "file_extension": ".py",
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "name": "python",
      "codemirror_mode": {
        "version": 3,
        "name": "ipython"
      },
      "mimetype": "text/x-python",
      "version": "3.5.5"
    },
    "kernelspec": {
      "name": "python3",
      "language": "python",
      "display_name": "Python 3"
    },
    "nteract": {
      "version": "0.15.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}